home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 3 / Cream of the Crop 3.iso / sound / albt095b.zip / INSTALL.CMD < prev    next >
OS/2 REXX Batch file  |  1994-01-20  |  12KB  |  331 lines

  1. /*───────────────────────────────────────────────────────────────────────────┐
  2. │  ALBATROS CDPLAYER Installation script (c) 1993 Norbert Heller             │
  3. │                                                                            │
  4. │                                                                            │
  5. │  Usage    :  INSTALL  <Source> <Target> <Language> <Display Type >         │
  6. │                                                                            │
  7. │  Example  :  INSTALL  A: C:\ALBATROS G           6                         │
  8. │              INSTALL  C:\UNPACK  C:\ALBATROS G   6                         │
  9. │                                                                            │
  10. │                                                                            │
  11. └───────────────────────────────────────────────────────────────────────────*/
  12. /* Anfang mit API */
  13. Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  14. Call SysLoadFuncs
  15. Call SysCls
  16.  
  17. /* Kommando Zeilen Parameter. */
  18. Parse Arg FloppyDir InstallDir Language Resolution
  19.  
  20. /* Start Init */
  21. bInstructed = 0
  22. Signal On Halt Name SignalHandler
  23.  
  24. /* Source */
  25. If FloppyDir = " " Then Do
  26.     Call Instructions
  27.     Say
  28.     Say 'NOTE:  If installing from a floppy drive, specify A: or B: '
  29.     Say '       If installing from a Hard Disk , specify full pathname '
  30.     Say
  31.     Call SimplePrompt 'Source Directory (Default 'directory()'):'
  32.     Pull FloppyDir
  33.  
  34.     /* Fehler ? */
  35.     If FloppyDir = " " Then Do
  36.        FloppyDir = directory()
  37.     End
  38. End
  39.  
  40.  
  41. /* Target */
  42. If InstallDir = " " Then Do
  43.     Call Instructions
  44.     Say
  45.     Call SimplePrompt 'Target Directory ( Default C:\ALBATROS ) :'
  46.     Parse Pull InstallDir
  47.  
  48.     /* Fehler ? */
  49.     If InstallDir = " " Then Do
  50.        InstallDir='C:\ALBATROS'
  51.     End
  52. End
  53.  
  54. /* Language erfassen */
  55.  
  56. If Language = " " Then Do
  57.     Say
  58.     Call SimplePrompt 'Language : (G)erman  (E)nglish  :'
  59.     Parse Pull Language
  60.  
  61.     /* Fehler, default == Englisch  ? */
  62.     If Language = " " Then Do
  63.        Language = 'e'
  64.     End
  65. End
  66.  
  67. /* Resolution erfassen */
  68. If Resolution = " " Then Do
  69.     Say
  70.     Call SimplePrompt 'Resolution of Target Screen : (6)40 or 800    (1)024 :'
  71.     Parse Pull Resolution
  72.  
  73.     /* Fehler, default == 640  ? */
  74.     If Resolution = " " Then Do
  75.        Resolution = '6'
  76.     End
  77. End
  78.  
  79.  
  80.  
  81. /* Pfad berichtigen */
  82. If SubStr( FloppyDir, Length( FloppyDir ), 1 ) \= '\' Then
  83.     FloppyDir = FloppyDir||'\'
  84.  
  85. /* Alles Klar ?     */
  86. Call SysCls
  87. Say '╔═══════════════════════════════════════════════════════════╗'
  88. Say '║                                                           ║'
  89. Say '║    ALBATROS  CD PLAYER INSTALLATION                       ║'
  90. Say '║                                                           ║'
  91. Say '╚═══════════════════════════════════════════════════════════╝'
  92. Say '                                                             '
  93. Say ' Source Directory:       "'FloppyDir'"              '
  94. Say ' Installation Directory: "'InstallDir'"             '
  95. Say '                                                            '
  96. If Language='G' | Language = 'g' then
  97. Say ' Language = GERMAN                                          '
  98. else
  99. If Language='E' | Language = 'e' then
  100. Say ' Language = ENGLISH                                         '
  101. Say '                                                             '
  102.  
  103. If Resolution='6' then
  104. Say ' Resolution = 640*480 or 800*600                                          '
  105. else
  106. If Resolution='1' then
  107. Say ' Resolution = 1024*768                                         '
  108. Say '                                                             '
  109.  
  110. Call YNPrompt 'OK to continue?', '1'
  111.  
  112. /* Dir's da ? */
  113. Say
  114. Say 'Checking for directory "'InstallDir'".'
  115. Call SysFileTree InstallDir, FileStem, 'D'
  116.  
  117. /* Directory nicht da  */
  118. If FileStem.0 = '0' Then Do
  119.     Say 'The "'InstallDir'" directory does not exist on your hard drive.'
  120.     Say
  121.     Call YNPrompt 'OK to create "'InstallDir'"?', '1'
  122.     Say
  123.     Say 'Creating 'InstallDir'....'
  124.     rc = SysMkDir( InstallDir )
  125.     if rc = 0 Then Do
  126.         Say 'The directory "'InstallDir'" was created successfully.'
  127.     End
  128.     Else Do
  129.         Say 'The directory "'InstallDir'" could not be created.'
  130.         Exit
  131.     End
  132. End
  133.  
  134.  
  135. /* Kopieren */
  136. Call SysCls
  137. Say
  138. Say 'ALBATROS  INSTALL is copying files to your hard drive.'
  139. Say
  140. Call CopyFile 'ALBATROS.EXE',   FloppyDir, InstallDir
  141. Call CopyFile 'ALBATROS.ICO',   FloppyDir, InstallDir
  142. /*
  143. Call CopyFile 'ALBATROS.HLP',   FloppyDir, InstallDir
  144. Call CopyFile 'ALBATROS.INF',   FloppyDir, InstallDir
  145. */
  146.  
  147. If Language = 'G' | Language = 'g' then Do
  148.    Copy FloppyDir || GERMAN.DLL InstallDir||'\'||ALBATROS.DLL
  149.    Copy FloppyDir || GERMAN.INF InstallDir||'\'||ALBATROS.INF
  150.    Copy FloppyDir || GERMAN.HLP InstallDir||'\'||ALBATROS.HLP
  151. End
  152.  
  153. If Language = 'E' | Language = 'e' then do
  154.    Copy FloppyDir || ENGLISH.DLL InstallDir||'\'||ALBATROS.DLL
  155.    Copy FloppyDir || ENGLISH.INF InstallDir||'\'||ALBATROS.INF
  156.    Copy FloppyDir || ENGLISH.HLP InstallDir||'\'||ALBATROS.HLP
  157. End
  158.  
  159. If Resolution = '6' then do
  160.    Copy FloppyDir || LCD640.FON InstallDir||'\'||ALBATROS.FON
  161. End
  162.  
  163. If Resolution = '1' then do
  164.    Copy FloppyDir || LCD1024.FON InstallDir||'\'||ALBATROS.FON
  165. End
  166.  
  167. /*
  168. Call CopyFile 'ALBATROS.FON',   FloppyDir, InstallDir
  169. */
  170. Call CopyFile 'INSTALL.CMD',    FloppyDir, InstallDir
  171.  
  172.  
  173. /* Program objekt erstellen ? */
  174. Call SysCls
  175. Say '╔═══════════════════════════════════════════════════════════╗'
  176. Say '║                                                           ║'
  177. Say '║   ALBATROS CD Player can be installed as a program        ║'
  178. Say '║   object on your Desktop                                  ║'
  179. Say '║                                                           ║'
  180. Say '╚═══════════════════════════════════════════════════════════╝'
  181. Say 
  182. Ret = YNPrompt( 'Do you want a program object created?', '0' )
  183. If Ret = 'Y' | Ret = 'y' Then Do
  184.     Say
  185.     Say 'Creating program reference object.'
  186.     r = SysCreateObject(    "WPProgram",,
  187.                             "Albatros",,
  188.                             "<WP_DESKTOP>",,
  189.                             "EXENAME="||InstallDir||"\ALBATROS.EXE;STARTUPDIR="||InstallDir )
  190.  
  191. End
  192.  
  193. /* und das INF Anzeigen */
  194. If Language = 'E' | Language = 'e' then Do
  195.    View InstallDir||'\'||ALBATROS.INF ABOUT
  196. End
  197.  
  198. If Language = 'G' | Language = 'g' then Do
  199.    View InstallDir||'\'||ALBATROS.INF UEBER
  200. End
  201.  
  202. /* Und Fertig */
  203. Call SysCls
  204. Say '╔═══════════════════════════════════════════════════════════╗'
  205. Say '║                                                           ║'
  206. Say '║   CD Player has been installed correctly                  ║'
  207. Say '║                                                           ║'
  208. Say '║   Please read the README Files and REGISTER Your Copy     ║'
  209. Say '║                                                           ║'
  210. Say '║   Have Fun with CD PLAYER                                 ║'
  211. Say '║                                                           ║'
  212. Say '╚═══════════════════════════════════════════════════════════╝'
  213. Say '                                                             '
  214.  
  215.  
  216. /* Und Tschuess */
  217. Exit
  218.  
  219.  
  220. /*───────────────────────────────────────────────────────────────────────────┐
  221. │  Name:        CopyFile                                                     │
  222. │                                                                            │
  223. │  Description: kopiert eine datei                                           │
  224. │                                                                            │
  225. │  Args:        File2copy, FloppyDrive, DestDrive                            │
  226. │                                                                            │
  227. └───────────────────────────────────────────────────────────────────────────*/
  228. CopyFile: Arg ArgFile2Copy, ArgFloppyDir, ArgInstallDir
  229.  
  230.     Say
  231.     Say 'Copying 'ArgFloppyDir||ArgFile2Copy' to 'ArgInstallDir||'\'||ArgFile2Copy'.'
  232.     Command = '@Copy 'ArgFloppyDir||ArgFile2Copy' 'ArgInstallDir||'\'||ArgFile2Copy
  233.     Command
  234.     if rc \= 0 Then Do
  235.         Call SimplePrompt 'Warning! 'ArgFile2Copy' could not be copied properly.'
  236.         Pull ConfirmIt
  237.     End
  238.     Return
  239.  
  240.  
  241. /*───────────────────────────────────────────────────────────────────────────┐
  242. │                                                                            │
  243. │  Name:        Prompt                                                       │
  244. │                                                                            │
  245. │  Description: Stellt den Curso an eine bestimmte stelle des Bildschirms    │
  246. │                                                                            │
  247. │  Args:        Prompt                                                       │
  248. └───────────────────────────────────────────────────────────────────────────*/
  249. SimplePrompt: Parse Arg ArgPrompt
  250.  
  251.     /* Kursor position */
  252.     Parse Value SysCurPos() With Row .
  253.  
  254.     /* Schirm groesse */
  255.     Parse Value SysTextScreenSize() With NumRows .
  256.  
  257.     /* End des Bildschirm ? */
  258.     if Row = NumRows - 1 Then Row = Row - 1
  259.  
  260.     /* Eingabe  */
  261.     Col = Length( ArgPrompt ) + 1
  262.  
  263.     /* Zeige Eingabe */
  264.     Say ArgPrompt
  265.     Call SysCurPos Row, Col
  266.  
  267.     Return
  268.  
  269.  
  270. /*───────────────────────────────────────────────────────────────────────────┐
  271. │  Name:        YNPrompt                                                     │
  272. │                                                                            │
  273. │  Description: Fragt nach Y /N                                              │
  274. │                                                                            │
  275. │  Args:        Yes/No Prompt                                                │
  276. └───────────────────────────────────────────────────────────────────────────*/
  277. YNPrompt: Parse Arg ArgPrompt, ArgAbort
  278.  
  279.     /* Bwenutzer Fragen*/
  280.     Call SimplePrompt ArgPrompt' (Y or N)'
  281.  
  282.     /* Bis er mit ja oder nein antwortet */
  283.     Do Forever
  284.         Key = SysGetKey( 'NOECHO' )
  285.         If Key = 'Y' | Key = 'y' Then Do
  286.             Say
  287.             Return Key
  288.         End
  289.         Else If Key = 'N' | Key = 'n' Then Do
  290.             Say
  291.             If ArgAbort = '1' Then Exit
  292.             Return Key
  293.         End
  294.     End
  295.     Return 'y'
  296.  
  297.  
  298. /*───────────────────────────────────────────────────────────────────────────┐
  299. │  Name:        Instruktionen                                                │
  300. │                                                                            │
  301. │  Description: Wie installiere ich richtig                                  │
  302. └───────────────────────────────────────────────────────────────────────────*/
  303. Instructions:
  304.     If bInstructed  = 0 Then Do
  305.         Say
  306.         Say '╔═══════════════════════════════════════════════════════════════╗'
  307.         Say '║    ALBATROS CD PLAYER Installation Instructions:              ║'
  308.         Say '║                                                               ║'
  309.         Say '║ Usage  : INSTALL  <Source> <Target> <Language> <Display Type> ║'
  310.         Say '║                                                               ║'
  311.         Say '║ Example: INSTALL A:           C:\ALBATROS  E  1               ║'
  312.         Say '║ Example: INSTALL C:\UNPACK    C:\ALBATROS  E  1               ║'
  313.         Say '║                                                               ║'
  314.         Say '╚═══════════════════════════════════════════════════════════════╝'
  315.  
  316.        bInstructed = 1
  317.     End
  318.     Return
  319.  
  320.  
  321. /*───────────────────────────────────────────────────────────────────────────┐
  322. │  Name:        SignalHandler                                                │
  323. │                                                                            │
  324. │  Description: Signal Handler                                               │
  325. └───────────────────────────────────────────────────────────────────────────*/
  326. SignalHandler:
  327.     Call SysCls
  328.     Say 'Warning ! CD Player installation aborted.'
  329.     Exit
  330.  
  331.